from django.core.management.base import BaseCommand
from health_app.models import Milestone, HealthTip
from typing import Any


class Command(BaseCommand):
    help = '创建初始数据'

    def handle(self, *args: Any, **options: Any) -> None:
        # 创建里程碑
        milestones_data = [
            {'name': '戒烟第1天', 'days': 1, 'description': '恭喜你开始戒烟之旅！', 'reward_message': '今天是你新生活的开始！'},
            {'name': '戒烟1周', 'days': 7, 'description': '一周无烟生活', 'reward_message': '坚持一周了，体内的尼古丁已基本清除！'},
            {'name': '戒烟1个月', 'days': 30, 'description': '一个月无烟生活', 'reward_message': '肺功能开始改善，血液循环增强！'},
            {'name': '戒烟3个月', 'days': 90, 'description': '三个月无烟生活', 'reward_message': '呼吸更顺畅，体力明显增强！'},
            {'name': '戒烟半年', 'days': 180, 'description': '半年无烟生活', 'reward_message': '心血管疾病风险显著降低！'},
            {'name': '戒烟1年', 'days': 365, 'description': '一年无烟生活', 'reward_message': '心脏病风险降低50%，肺癌风险大幅下降！'},
        ]

        for milestone_data in milestones_data:
            milestone, created = Milestone.objects.get_or_create(  # type: ignore[attr-defined]
                name=milestone_data['name'],
                defaults=milestone_data
            )
            if created:
                self.stdout.write(f'创建里程碑: {milestone.name}')

        # 创建健康建议
        health_tips_data = [
            {
                'title': '深呼吸法应对烟瘾',
                'content': '当烟瘾来袭时，深呼吸10次。吸气4秒，屏息4秒，呼气4秒。这能帮助放松神经系统。',
                'category': 'craving'
            },
            {
                'title': '多喝水的重要性',
                'content': '戒烟期间多喝水可以帮助排出体内毒素，减少烟瘾强度，建议每天至少8杯水。',
                'category': 'health'
            },
            {
                'title': '运动替代吸烟',
                'content': '感到压力或烟瘾时，进行5-10分钟的快走或伸展运动，可以释放内啡肽，改善心情。',
                'category': 'exercise'
            },
            {
                'title': '戒烟后的身体变化',
                'content': '戒烟20分钟：心率和血压下降。戒烟12小时：血液中一氧化碳水平恢复正常。',
                'category': 'health'
            },
            {
                'title': '应对戒断症状',
                'content': '戒断症状通常在戒烟后3天内最强烈，包括易怒、焦虑、注意力不集中。这些症状是暂时的。',
                'category': 'general'
            },
            {
                'title': '健康饮食建议',
                'content': '多吃水果和蔬菜，避免咖啡因和酒精，这些可能会触发吸烟欲望。坚果和胡萝卜可以占据双手。',
                'category': 'diet'
            },
            {
                'title': '保持积极心态',
                'content': '记住戒烟的原因：健康、金钱、家人。将这些写下来，在困难时刻提醒自己。',
                'category': 'motivation'
            },
            {
                'title': '避免吸烟触发因素',
                'content': '识别并避免吸烟触发因素：某些社交场合、压力情况、特定时间或地点。',
                'category': 'craving'
            },
        ]

        for tip_data in health_tips_data:
            tip, created = HealthTip.objects.get_or_create(  # type: ignore[attr-defined]
                title=tip_data['title'],
                defaults=tip_data
            )
            if created:
                self.stdout.write(f'创建健康建议: {tip.title}')

        self.stdout.write(self.style.SUCCESS('初始数据创建完成！'))  # type: ignore[attr-defined]